package br.com.minhabiblia.view.form.manterFavorito {
		
	import br.com.minhabiblia.view.componentes.MostraCursor;
	import br.com.minhabiblia.view.entidades.Favorito;
	import br.com.minhabiblia.view.entidades.Retorno;
	import br.com.minhabiblia.view.form.enviarEmail.JanelaEnviarEmail;
	import br.com.minhabiblia.view.servico.Servico;
	import br.com.minhabiblia.view.util.PoolDados;
	
	import mx.events.FlexEvent;
	import mx.managers.PopUpManager;
	import mx.rpc.events.InvokeEvent;
	import mx.rpc.events.ResultEvent;
	
	public class Favoritos extends FavoritosView {
		
		private static var pool : PoolDados = PoolDados.getInstancia();
		
		/* ************
		 * Construtores
		 * ************ */
		public function Favoritos():void {
			super();
			addEventListener(FlexEvent.CREATION_COMPLETE, this.init);
		}
		
		/* *******
		 * Eventos
		 * ******* */
		protected function init(event: FlexEvent):void {
			btPesquisar.addEventListener(FlexEvent.BUTTON_DOWN, listarMeusFavoritos);
			btRemoverFavorito.addEventListener(FlexEvent.BUTTON_DOWN, removerFavorito);
			btEnviarEmail.addEventListener(FlexEvent.BUTTON_DOWN, enviarVersoEmail);
	    }
	    
   		private function listarMeusFavoritos(event: FlexEvent):void {
   			var termosPesquisa : String = txtTermosPesquisa.text;
			Servico.getServico("MinhaBibliaOnLineFachada", retornoListarFavoritos, aguardarResultado).getOperation("listarFavoritos").send(termosPesquisa);
		}
		
   		private function removerFavorito(event: FlexEvent):void {
   			var favorito : Favorito = lstFavoritos.selectedItem as Favorito;
   			var termosPesquisa : String = txtTermosPesquisa.text;
			Servico.getServico("MinhaBibliaOnLineFachada", retornoListarFavoritos, aguardarResultado).getOperation("removerFavorito").send(favorito, termosPesquisa);
		}

		private function retornoListarFavoritos(event: ResultEvent):void {
			MostraCursor.removeBusyCursor();
			var retorno : Retorno = event.result as Retorno;
			this.lstFavoritos.dataProvider = retorno.lista;
		}

		private function aguardarResultado(event: InvokeEvent):void {
			MostraCursor.setBusyCursor("Aguarde...", this);
		}
		
		private function enviarVersoEmail(event: FlexEvent):void {
			if (this.lstFavoritos.selectedItem != null) {
				var favorito : Favorito = this.lstFavoritos.selectedItem as Favorito;
				
				pool.dados.livro = favorito.livro;
				pool.dados.capitulo = favorito.capitulo;
				pool.dados.verso = favorito.verso;
				pool.dados.texto = favorito.texto;
				
				PopUpManager.createPopUp(this, JanelaEnviarEmail, true);
			}
		}
	}
}